Many computer systems execute one or more applications or processes that request service from other applications or process via a connectivity graph, such as a network. System congestion or service provider overload sometimes occurs when the number of requests issued exceeds the capacity of the service providers to efficiently reply to requests.
One approach for preventing or reducing congestion is thoroughly testing a system before production to ascertain the maximal load or bandwidth which the network can carry before becoming congested. The system specification then specifies this limitation. Some systems address congestion by providing an additional layer in service provider components. This layer receives all incoming requests and either accepts or rejects them depending on the availability of service provider resources and/or the number of pending requests.